//APP更新

import configService from '@/common/service/config.service.js';

//判断WIFI连接状态
function validIsLinkWifi(){
	if(plus.networkinfo.getCurrentType()!=3){
		return false
	}
	return true
}

export default function appUpdate() {
	if(!configService.apiUrl){
		return false
	}
	
	let _osName = plus.os.name		//Android, 
	let _appId = '__UNI__9EC3BDA'	//代码获取appId时得到的是固定字符串'HBuilder', 此处为了分区别同一公司可能拥有多款APP, 采用一款APP对应唯一值(即:和uniapp项目manifest中appid手工保持一致)
	let _version = ''
	
	//获取manifest.json配置文件
	plus.runtime.getProperty(plus.runtime.appid, (wgtInfo) => {
		console.log('wgtInfo = ', wgtInfo)
		_version = wgtInfo.version
	})
	
	console.log("_osName = ", _osName)
	console.log("_appId = ", _appId)
	console.log("_version = ", _version)
	
	uni.request({
		//检查更新的服务器地址
		url: configService.apiUrl + '/publish/validNeedUpdate',
		data: {
			osName: _osName,
			appId: _appId,
			version: _version
		},
		success: (res) => {
			/*
				服务器返回数据结构
				{
					data:{
						success:true,
						result:{
							needUpdate: 'true',
							updateTitle: '医疗帮v1.0.7-&gt;v1.0.8',
							newestVersion: '1.0.8',
							updateDescription: '-集成支付宝支付\n-集成微信支付\n-优化个人中心\n-修复部分已知问题',
							newestAppDownloadUrl: 'http://qiniu.cdn.dev.hncuiyi.com/ylb-v1.0.7.apk',
						}
					}
				}
			*/
			if(!res.data.success){
				return false
			}
			let jsonData = res.data.result
			if(!jsonData){
				return false
			}
			
			//'true'-客户端需要更新, 'false'-客户端不需要更新
			let _needUpdate = jsonData.needUpdate.toLowerCase().trim()
			if(_needUpdate=='false'){
				return false
			}
			
			//判断用户网络状态
			let _isLinkWifi = validIsLinkWifi()
			if(_isLinkWifi){
				uni.showToast({
				  title: '温馨提示：需要更新但您并非wifi上网，\n为节约流量您可自主决定是否更新，\n旧版本将有部分功能无法继续使用。',
				  mask: true,
				  icon: 'none',
				  duration: 7000
				});
			}
			
			// 用户决定是否更新
			setTimeout(function() {
				uni.showModal({
					title: jsonData.updateTitle,
					content: jsonData.updateDescription,
					confirmText: '立即安全更新',
					showCancel: false,
					success: (showResult) => {
						if (showResult.confirm) {
							//用户点击-确定
							let _newestAppDownloadUrl = jsonData.newestAppDownloadUrl
							if (_newestAppDownloadUrl) {
								plus.nativeUI.toast("正在准备环境，请稍后!");
								var dtask = plus.downloader.createDownload(jsonData.newestAppDownloadUrl, {
									method: 'GET',
									filename: '_doc/update/'
								}, function(d, status) {
									if (status == 200) {
										var path = d.filename; //下载apk
										plus.runtime.install(path); // 自动安装apk文件
									} else {
										plus.nativeUI.alert('版本更新失败:' + status + '，请在应用商店下载最新');
									}
								});
								dtask.start();
							}
						}else{
							//用户点击-取消
							uni.showToast({
							  title: '温馨提醒：本次未更新，部分功能将无法使用',
							  mask: true,
							  icon: 'none',
							  duration: 6000
							});
						}
					}
				})
			}, 8000);
		}
	})
}
